The present invention relates generally to information coding, and more particularly to techniques for providing error protection for progressive bit streams using convolutional codes and other types of channel codes.
In a progressive source coded bit stream, bits are generally arranged in order of decreasing importance, such that the quality of the source signal that can be reconstructed at the receiver depends upon the number of bits received. Conventional progressive source coding techniques of this type are described in, e.g., A. Said et al., xe2x80x9cA New and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees,xe2x80x9d IEEE Transactions on Circuits and Systems for Video Tech., June 1996; B.-J. Kim et al., xe2x80x9cVery Low Bit-Rate Embedded Coding with 3D Set Partitioning in Hierarchical Trees,xe2x80x9d IEEE Transactions on Circuits and Systems for Video Technology, Special Issue on Image and Video Processing for Emerging Interactive Multimedia Services, September 1998; and B.-J. Kim et al., xe2x80x9cLow-Delay Embedded Video Coding with SPIHT,xe2x80x9d Proc. SPIE, Visual Communications and Image Processing ""98, pp. 955-964, January 1998.
Consider as an example an N-bit progressive source coded bit stream arranged in the order {a0, a1, a2, . . . aN}, where a0 represents the most important bit and aN represents the least important bit. If only a given subset {a0, . . . ai} (1xe2x89xa6i less than N) of the ordered bits is received at the receiver, then a coarse representation of the source signal can be reconstructed based on these (i+1) bits. The reconstructed signal quality thus increases with the number of bits received successfully. However, if ai is not received successfully and aj with j greater than i is received successfully, the aj bit generally cannot be used by the source decoder to improve the decoded signal quality. Therefore, a channel code used in conjunction with transmission of the source coded bit stream through a communication channel should preferably be designed to ensure that the most important bits, i.e., the bits with smaller values of i, are provided with the highest level of error protection and that the error protection decreases for bits with increasing values of i.
A number of techniques for providing unequal error protection (UEP) via channel codes are described in U.S. patent application Ser. No. 09/022,114, filed Feb. 11, 1998 in the name of inventors D. Sinha and C.-E. W. Sundberg and entitled xe2x80x9cUnequal Error Protection for Perceptual Audio Coders,xe2x80x9d which is incorporated by reference herein. In one such technique, a source coded bit stream is divided into different classes of bits, with different levels of error protection being provided for the different classes of bits. For example, a source coded bit stream may be divided into class I and class II bits, with class I bits protected by a lower rate channel code than that used to protect the class II bits.
In order to reduce hardware complexity, these and other techniques may make use of rate compatible punctured convolutional (RCPC) codes to implement the different channel code rates required for UEP. RCPC codes are described in J. Hagenauer, xe2x80x9cRate-Compatible Punctured Convolutional Codes (RCPC Codes) and Their Applications,xe2x80x9d IEEE Transactions on Communications, Vol. 36, April 1988; and J. Hagenauer et al., xe2x80x9cThe Performance of Rate-Compatible Punctured Convolutional Codes for Digital Mobile Radio,xe2x80x9d IEEE Transactions on Communications, Vol.28, July 1990. With reference to the previous example, RCPC codes can be used to implement the channel codes of the both the class I rate and the class II rate.
In certain of the UEP techniques described in the above-cited U.S. patent application Ser. No.09/022,114, the source coded bits of the different classes are generally coded separately and each class is further separated into blocks in order to avoid error propagation that can significantly degrade the channel decoder performance. This separation into blocks requires that so-called tail bits be used to terminate each block of a given one of the codes. As noted above, in the case of a progressive source coded bit stream, if a given bit ai is not received successfully, a subsequent bit aj(j greater than i) generally cannot be used to improve the decoded signal quality. Channel error protection should therefore also be provided progressively, with decreasing error protection to the bits ai, ai+1, ai+2 and so on in the source coded bit stream. However, application of the above-described multi-class UEP technique to a progressive source coded bit stream may result in the source coded bit stream being divided into many sub-blocks with each sub-block subject to an increasing code rate. Such an arrangement may necessitate an unduly large number of tail bits, thereby substantially increasing the overhead associated with implementation of the technique.
As is apparent from the foregoing, a need exists for improved techniques for providing channel error protection for source coded bit streams.
The present invention meets the above-described need by providing a method and apparatus for implementing channel error protection for a progressive source coded bit stream or other type of source coded bit stream.
In accordance with the invention, unequal channel error protection is provided for a source coded bit stream by puncturing of a channel code. The source coded bit stream is preferably a progressive source coded bit stream, but could be another type of source coded bit stream, e.g., a partitioned bit stream. The channel code has a specified rate associated with a corresponding level of error protection, and is used to code a first portion of the source coded bit stream. The channel code is subsequently punctured for at least a second portion of the source coded bit stream so as to provide a rate higher than that of the designated rate. Commencement of the puncturing step is deliberately delayed by an amount determined based at least in part on a memory of the channel code. For example, the amount of delay may be specified as a number of bits which is greater than or equal to a memory of the channel code, but less than or equal to a decoding depth of a channel decoder used to decode the channel coded bit stream.
Advantageously, the invention avoids the excessive overhead problems attributable to the tail bits required for termination of sub-blocks in conventional unequal error protection (UEP) techniques. Although particularly well-suited for use with progressive source coded video bit streams, the invention is more generally applicable to any type of progressive information bit stream requiring channel error protection, as well as to other types of bit streams including partitioned source coded bit streams.